/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao.imp;

import dao.UsuarioDao;
import hibernate.HibernateUtil;
import java.util.ArrayList;
import modelo.dominio.Usuario;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author Pablo
 */
public class UsuarioDaoImp implements UsuarioDao {

    @Override
    public void insert(Usuario usuario) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.save(usuario);
        session.getTransaction().commit();
        session.close();
    }

    @Override
    public void delete(Usuario usuario) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.delete(usuario);
        session.getTransaction().commit();
        session.close();
    }

    @Override
    public void update(Usuario usuario) {
         Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.update(usuario);
        session.getTransaction().commit();
        session.close();
    }

    @Override
    public Usuario getUsuario(String id) {
         Session session = HibernateUtil.getSessionFactory().openSession();
         session.beginTransaction();
         Criteria criteria = session.createCriteria(Usuario.class);
         criteria.add(Restrictions.eq("id", id));
         Usuario usuario = (Usuario) criteria.list().get(0);
         session.close();
         return usuario;
        
    }

    @Override
    public ArrayList<Usuario> getAll() {
        Session session = HibernateUtil.getSessionFactory().openSession();
         session.beginTransaction();
         Criteria criteria = session.createCriteria(Usuario.class);
         ArrayList<Usuario> lista = (ArrayList<Usuario>) criteria.list();
         session.close();
         return lista;
    }
      public Usuario getUsuarioByLogin(String id, String password){
      Session session = HibernateUtil.getSessionFactory().openSession();      
      Criteria criteria = session.createCriteria(Usuario.class);
      criteria.add(Restrictions.eq("id", id));
      criteria.add(Restrictions.eq("pass", password));
      return (Usuario) criteria.uniqueResult();
    }
   
    
}
